\section{An'alisis de buffers compartidos}
Se detalla a continuaci'on los an'alisis correspondientes a las mediciones realizadas sobre un 
esquema de \textit{buffer manager} con una 'unica estrategia.

\subsection{Mediciones realizadas}
Se utilizaron tres ``trazas'' de sequencias de llamados (\textit{request} y \textit{release}):   
\begin{itemize}
\item \textbf{BNLJ}: se trata de una traza que simula el comportamiento de un algoritmo BNLJ para evaluar un join. 
El outer join consta de 400 p\'aginas, mientras que el inner join comprende 500 p\'aginas. 
Entre los tipos de traza \textit{puros} propuestos en el enunciado, este fue el \'unico considerado individualmente, 
ya que vuelve a referenciar las mismas p\'aginas m\'as de una vez y tiene un compartemiento mas complejo que 
el ``Index Scan Uncluestered''. 
\item \textbf{Concatenado Aleatorio ``Peque\~no''}: se trata de una traza compuesta por una concatenaci\'on secuencial de 
las trazas b\'asicas del enunciado: \textit{File Scan}, \textit{Index Scan Clustered}, \textit{Index Scan Unclustered} 
y \textit{BNLJ}. Se generan 100 trazas aleatorias considerando instancias de estos cuatro tipos de trazas ``b\'asicos'',
siendo estas instancias relativamente pequeñas, generando una cantidad 900 pedidos en total, aproximadamente 9 por instancia). 
\item \textbf{Concatenado Aleatorio ``Grande''}: sigue el mismo esquema que el anterior pero sumando 1000 trazas b\'asicas y
generando unos 88.000 pedidos en total, aproximadamente 90 por instancia.
\end{itemize}

Cada estrategia considerada: Best, Random, MRU, LRU, FIFO y para cada una de estas tres trazas propuestas se
midi\'o el \textit{hit rate} con distintos tama\~nos de de buffer. 

\subsubsection{Par\'ametros de la mediciones}
Para determinas los distintos tama\~nos de buffer se consideraron dos cotas que dependen de la traza y una decena de valores
intermedios entre ellos como se sugiere en \cite{eff84}. Ambas magnitudes (cota superior e inferior) son calculadas en la cĺase ``TraceUtil''
mencionada anteriormente.

\subsubsection*{Cota superior}
El tama\~no de buffer m\'aximo considerado para una determinada traza es la cantidad de p\'aginas distintas que se solicitan. Un buffer
de mayor capacidad que esta cantidad tendr\'ia siempre espacio libre.  

\subsubsection*{Cota inferior}
El tama\~no de buffer m\'inimo considerado para una determinada traza es la mayor cantidad de p\'aginas distintas que est\'an ``solicititadas''
en un determinado momento. Un buffer de menor tama\~no que esta cantidad no podr\'ia alamacenar todas las p\'aginas necesarias para la ejecuci\'on 
en el momento ``pico'' de solicitudes. Para calcular este n\'umero se simula la ejecuci\'on de una traza manteniendo la cantidad de p\'aginas abiertas
en cada operaci\'on y calculando el m\'aximo de todos estos valores. 

\subsubsection{Proceso de medici\'on}
La evaluaci\'on de las p\'aginas se encuentra implementada en la clase \textit{SingleBufferCompare} del paquete \textit{ubadb.bench}. 
Este proceso genera una salida con formato CSV. En los archivos adjuntos se presenta esta informaci\'on en una planilla de 
c\'alculo de tipo ODT para una lectura m\'as c\'omoda de los resultados y para posterior generaci\'on de gr\'aficos a partir de 
los mismos.

\subsection{Resultados}
A continuaci\'on se muestran los resultados de la eficiencia (\textit{hit rate}) en funci\'on del tama\~no del buffer, para cada una de las trazas usando cada una de las
estrategias.
\subsubsection*{Traza ``BNLJ''} 
\begin{center}
  \includegraphics[height=11cm]{img/e12-bnlj.png}
\end{center}  
\subsubsection*{Traza ``Peque\~na''} 
\begin{center}
  \includegraphics[height=11cm]{img/e12-small.png}
\end{center}  
\subsubsection*{Traza ``Grande''} 
\begin{center}
  \includegraphics[height=11cm]{img/e12-big.png}
\end{center}  


\subsection{An\'alisis de los resultados y conclusiones}

\subsubsection*{Traza ``BNLJ''}
En el caso de la traza de \textbf{BNLJ}, se ve que mientras tanto \textbf{MRU}, \textbf{Random} mejoran su eficiencia conforme el tama\~no del buffer
va aumentando, a partir del $70\%$, \textbf{MRU} supera a \textbf{Random}. Por otra parte las estrategias \textbf{FIFO} y \textbf{LRU} tienen
mala respuesta de performance para buffers peque\~nos y buena respuesta para buffers de mayor capacidad. 

\subsubsection*{Traza ``Grande'' y ``Peque\~na''}

Hay una diferencia en dos grupos, que se repite tanto para la traza ``Grande'' como ``Peque\~na'': 
por una parte \textbf{MRU} verifica un crecimiento progresivo y sin saltos en el 
hit rate, mientras que el grupo formado por \textbf{LRU} y \textbf{FIFO} 
crece a trav\'es de saltos. En el caso de la traza ``Grande'', para el segundo grupo antedicho, se mantiene un nivel bajo de \textit{hit rate} 
hasta llegar a cerca del $40\%$.  Esto parece indicar que el primer grupo es menos sensible al orden de las trazas concatenadas.

\subsection{Tabla de comparaciones}
En funci\'on de los an\'alisis anteriores se presenta la siguiente tabla comparativa de eficiencia de las distintas estrategias en los distintos contextos:
\begin{center}
  \begin{tabular}{ | l | c | c | c | c | }
    \hline
    \multirow{2}{*}{Estrategia} & \multicolumn{2}{c|}{\textbf{BNLJ}} & \multicolumn{2}{c|}{\textbf{Aleatorio}} \\
    & Buffer Peque\~no & Buffer grande & Buffer Peque\~no & Buffer grande \\ \hline
    \textbf{MRU} & Bueno & Malo & Bueno & Malo \\ \hline
    \textbf{LRU} & Malo & Bueno & Malo & Bueno \\ \hline
    \textbf{FIFO} & Malo & Bueno & Malo & Bueno \\ \hline
  \end{tabular}
\end{center}

\section{An'alisis de buffers por tabla}
Para las distintas trazas del escenario 3 se compararon los \textit{hit rate} buffers MRU y LRU tanto compartido 
como por tabla. La distribuci'on del tama\~o de buffer por tabla se hizo proporcional entre el tama\~no
del buffer total y los tama\~nos de tablas relativos entre s'i, ya que es uno de los datos
``a priori'' que se pueden averiguar sin tener en cuenta la traza.

\subsection{Mediciones realizadas}
Los buffers a medidos por cada traza del escenario 3 fueron:
\begin{itemize}
\item \textit{Buffer compartido} con estrategia \textit{Best} que se considera una cota superior
\item \textit{Buffer compartido} con estrategia \textit{Random} que se considera una cota inferior
\item \textit{Buffer por tabla} con estrategia \textit{MRU} (en los gr'aficos se identifica como M-MRU)
\item \textit{Buffer por tabla} con estrategia \textit{LRU} (en los gr'aficos se identifica como M-LRU)
\item \textit{Buffer compartido} con estrategia \textit{MRU} (en los gr'aficos se identifica como S-MRU)
\item \textit{Buffer compartido} con estrategia \textit{LRU}  (en los gr'aficos se identifica como S-LRU)
\end{itemize}

\subsubsection{Par\'ametros de la mediciones}
Los distintos tama\~os de buffers que se consideraron se calcularon de la misma forma que las mediciones
del \textit{buffer compartido}. Y se excluyeron los casos en los cuales el tama\~no del buffer asignado a una tabla
no alcanza para procesar la traza.

\subsubsection{Proceso de medici\'on}
De la misma forma que en las mediciones del \textit{buffer compartido} la clase \textit{MutipleBuffersCompare} del paquete \textit{ubadb.bench}. 
genera una salida con formato CSV que luego es pasado a una planilla de c'alculo de \textit{openoffice} para realizar los gr\'aficos correspondientes.

\subsection{Resultados}
A continuaci\'on se muestran los resultados de la eficiencia (\textit{hit rate}) en funci\'on del tama\~no del buffer, para cada una de las trazas usando cada una de las
estrategias.
\subsubsection*{Traza ``B''} 
\begin{center}
  \includegraphics[height=11cm]{img/e3-b.png}
\end{center}  
\subsubsection*{Traza ``C''} 
\begin{center}
  \includegraphics[height=11cm]{img/e3-c.png}
\end{center}  
\subsubsection*{Traza ``D''} 
\begin{center}
  \includegraphics[height=11cm]{img/e3-d.png}
\end{center}  
\subsubsection*{Traza ``E''} 
\begin{center}
  \includegraphics[height=11cm]{img/e3-e.png}
\end{center}  

\subsection{An\'alisis de los resultados y conclusiones}
Tanto en la traza B como C se puede ver que las estrategias con buffers por tabla supera al resto de las estrategias cuando
la cantidad de bloques disponibles satisface la alocaci'on de la tabla. Cuando la cantidad de bloques disponibles en el buffer
es mas peque~na, los buffers por tabla son insuficientes porque no pueden alocar todas las p'aginas requeridas por tabla.

\subsection{Tabla de comparaciones}
En funci\'on de los an\'alisis anteriores se presenta la siguiente tabla comparativa de eficiencia de las distintas estrategias en los distintos contextos:
\begin{center}
  \begin{tabular}{ | l | c | c | }
    \hline
    Estrategia & Buffer Peque\~no & Buffer grande \\ \hline
    \textbf{MRU compartido} & Bueno & Malo \\ \hline
    \textbf{LRU compartido} & Bueno & Malo \\ \hline
    \textbf{MRU por tabla} & Insuficiente & Bueno \\ \hline
    \textbf{LRU por tabla} & Insuficiente & Bueno \\ \hline
  \end{tabular}
\end{center}
